package com.course.chapter3;

/**
 *  懒汉式
 *  优缺点
 *   1.线程安全性  yes
 *   2.性能       还ok
 *   3.懒加载     yes
 * @ClassName: com.course.chapter3.HolderSingleton.java
 * @author: songxulin
 * @date :  2020-06-30 19:01
 * @version V1.0
 */
public class HolderSingleton {
    private HolderSingleton(){
    }

    private static class Holder{
        public static HolderSingleton holderSingleton = new HolderSingleton();
    }

    public HolderSingleton getInstance(){
        //加载一个类时，其内部类不会同时被加载。一个类被加载，当且仅当其某个静态成员（静态域、构造器、静态方法等）被调用时发生。
        //静态内部类，在掉用的时候会实例化
        return Holder.holderSingleton;
    }
}
